/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package EA_Model.IEC61970.Protection;

import EA_Model.IEC61970.Domain.CurrentFlow;
import EA_Model.IEC61970.Domain.Seconds;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Current Relay</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link EA_Model.IEC61970.Protection.CurrentRelay#getCurrentLimit1 <em>Current Limit1</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Protection.CurrentRelay#getCurrentLimit2 <em>Current Limit2</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Protection.CurrentRelay#getCurrentLimit3 <em>Current Limit3</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Protection.CurrentRelay#getInverseTimeFlag <em>Inverse Time Flag</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Protection.CurrentRelay#getTimeDelay1 <em>Time Delay1</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Protection.CurrentRelay#getTimeDelay2 <em>Time Delay2</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Protection.CurrentRelay#getTimeDelay3 <em>Time Delay3</em>}</li>
 * </ul>
 * </p>
 *
 * @see EA_Model.IEC61970.Protection.ProtectionPackage#getCurrentRelay()
 * @model
 * @generated
 */
public interface CurrentRelay extends ProtectionEquipment {
	/**
	 * Returns the value of the '<em><b>Current Limit1</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Current Limit1</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Current Limit1</em>' reference.
	 * @see #setCurrentLimit1(CurrentFlow)
	 * @see EA_Model.IEC61970.Protection.ProtectionPackage#getCurrentRelay_CurrentLimit1()
	 * @model ordered="false"
	 * @generated
	 */
	CurrentFlow getCurrentLimit1();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Protection.CurrentRelay#getCurrentLimit1 <em>Current Limit1</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Current Limit1</em>' reference.
	 * @see #getCurrentLimit1()
	 * @generated
	 */
	void setCurrentLimit1(CurrentFlow value);

	/**
	 * Returns the value of the '<em><b>Current Limit2</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Current Limit2</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Current Limit2</em>' reference.
	 * @see #setCurrentLimit2(CurrentFlow)
	 * @see EA_Model.IEC61970.Protection.ProtectionPackage#getCurrentRelay_CurrentLimit2()
	 * @model ordered="false"
	 * @generated
	 */
	CurrentFlow getCurrentLimit2();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Protection.CurrentRelay#getCurrentLimit2 <em>Current Limit2</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Current Limit2</em>' reference.
	 * @see #getCurrentLimit2()
	 * @generated
	 */
	void setCurrentLimit2(CurrentFlow value);

	/**
	 * Returns the value of the '<em><b>Current Limit3</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Current Limit3</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Current Limit3</em>' reference.
	 * @see #setCurrentLimit3(CurrentFlow)
	 * @see EA_Model.IEC61970.Protection.ProtectionPackage#getCurrentRelay_CurrentLimit3()
	 * @model ordered="false"
	 * @generated
	 */
	CurrentFlow getCurrentLimit3();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Protection.CurrentRelay#getCurrentLimit3 <em>Current Limit3</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Current Limit3</em>' reference.
	 * @see #getCurrentLimit3()
	 * @generated
	 */
	void setCurrentLimit3(CurrentFlow value);

	/**
	 * Returns the value of the '<em><b>Inverse Time Flag</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Inverse Time Flag</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Inverse Time Flag</em>' reference.
	 * @see #setInverseTimeFlag(EA_Model.IEC61970.Domain.Boolean)
	 * @see EA_Model.IEC61970.Protection.ProtectionPackage#getCurrentRelay_InverseTimeFlag()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Boolean getInverseTimeFlag();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Protection.CurrentRelay#getInverseTimeFlag <em>Inverse Time Flag</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Inverse Time Flag</em>' reference.
	 * @see #getInverseTimeFlag()
	 * @generated
	 */
	void setInverseTimeFlag(EA_Model.IEC61970.Domain.Boolean value);

	/**
	 * Returns the value of the '<em><b>Time Delay1</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Time Delay1</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Time Delay1</em>' reference.
	 * @see #setTimeDelay1(Seconds)
	 * @see EA_Model.IEC61970.Protection.ProtectionPackage#getCurrentRelay_TimeDelay1()
	 * @model ordered="false"
	 * @generated
	 */
	Seconds getTimeDelay1();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Protection.CurrentRelay#getTimeDelay1 <em>Time Delay1</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Time Delay1</em>' reference.
	 * @see #getTimeDelay1()
	 * @generated
	 */
	void setTimeDelay1(Seconds value);

	/**
	 * Returns the value of the '<em><b>Time Delay2</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Time Delay2</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Time Delay2</em>' reference.
	 * @see #setTimeDelay2(Seconds)
	 * @see EA_Model.IEC61970.Protection.ProtectionPackage#getCurrentRelay_TimeDelay2()
	 * @model ordered="false"
	 * @generated
	 */
	Seconds getTimeDelay2();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Protection.CurrentRelay#getTimeDelay2 <em>Time Delay2</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Time Delay2</em>' reference.
	 * @see #getTimeDelay2()
	 * @generated
	 */
	void setTimeDelay2(Seconds value);

	/**
	 * Returns the value of the '<em><b>Time Delay3</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Time Delay3</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Time Delay3</em>' reference.
	 * @see #setTimeDelay3(Seconds)
	 * @see EA_Model.IEC61970.Protection.ProtectionPackage#getCurrentRelay_TimeDelay3()
	 * @model ordered="false"
	 * @generated
	 */
	Seconds getTimeDelay3();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Protection.CurrentRelay#getTimeDelay3 <em>Time Delay3</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Time Delay3</em>' reference.
	 * @see #getTimeDelay3()
	 * @generated
	 */
	void setTimeDelay3(Seconds value);

} // CurrentRelay
